今天來講長條圖,是一個常見的圖表,可以快速比較兩個以上的差異。
先建立Drawing(畫布大小),再加上長條圖,VerticalBarChart(長條圖類別)
說明
有一些參數可以設定
圖表資料的格式 兩層的List,可以放數個List,一個List 代表一個長條圖。
stokeColor: 長條圖外框框線顏色
valueAxis.valueMin: 左邊Y軸最小值
valueAxis.valueMax: 左邊Y軸最大值
valueAxis.valueStep: 左邊Y軸間隔
verticalBarChart.bars[].fillColor: 長條圖顏色,可以對每個不同的長條圖顏色
verticalBarChart.categoryAxis.categoryNames: X軸顯示名稱
還有其他屬性,可以查官方文件。
程式碼
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate
from reportlab.graphics.shapes import Drawing
from reportlab.graphics.charts.barcharts import VerticalBarChart
drawing = Drawing(200, 100)
dataList = [
[10, 20, 30, 40, 50, 60, 70, 80],
[70, 6, 7, 58, 47, 65, 21, 63],
]
verticalBarChart = VerticalBarChart()
verticalBarChart.data = dataList
verticalBarChart.strokeColor = colors.black
verticalBarChart.valueAxis.valueMin = 0
verticalBarChart.valueAxis.valueMax = 100
verticalBarChart.valueAxis.valueStep = 10
verticalBarChart.bars[0].fillColor = colors.lightblue
verticalBarChart.bars[1].fillColor = colors.lightgreen
categoryNames = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
verticalBarChart.categoryAxis.categoryNames = categoryNames
drawing.add(verticalBarChart)
fileName = "example.pdf"
pdfTemplate = SimpleDocTemplate(fileName)
story = []
story.append(drawing)
pdfTemplate.build(story)
結果
參考資料: